package at.horario.dao.hibernate;

import at.horario.dao.ChDisciplinaDao;
import at.horario.model.ChDisciplina;
import at.horario.model.Disciplina;
import at.horario.model.Grupo;
import at.horario.model.Turno;
import org.hibernate.criterion.DetachedCriteria;
import static org.hibernate.criterion.DetachedCriteria.forClass;
import static org.hibernate.criterion.Restrictions.eq;

import java.util.List;

public class ChDisciplinaDaoHibernate extends GenericDaoHibernate<ChDisciplina, Integer> implements ChDisciplinaDao {
    public ChDisciplinaDaoHibernate() {
        super(ChDisciplina.class);
    }


    public ChDisciplina find(Disciplina disciplina, Turno turno, Grupo grupo) {
        DetachedCriteria criteria = forClass(ChDisciplina.class);
        criteria.add(eq("disciplina", disciplina));
        criteria.add(eq("turno", turno.ordinal()));
        criteria.add(eq("grupo", grupo));
        List list = super.getHibernateTemplate().findByCriteria(criteria, 0, 1);
        return list.isEmpty() ? null : (ChDisciplina) list.get(0);
    }


}